#pragma once

#include <QWidget>
#include <QDoubleSpinBox>

class DeformationParameterPanel_Homography : public QWidget
{
	Q_OBJECT

public:
	DeformationParameterPanel_Homography(QWidget *parent = Q_NULLPTR);
	~DeformationParameterPanel_Homography();

	double h11() const { return doublespinbox_h11_->value(); }
	double h12() const { return doublespinbox_h12_->value(); }
	double h13() const { return doublespinbox_h13_->value(); }
	double h21() const { return doublespinbox_h21_->value(); }
	double h22() const { return doublespinbox_h22_->value(); }
	double h23() const { return doublespinbox_h23_->value(); }
	double h31() const { return doublespinbox_h31_->value(); }
	double h32() const { return doublespinbox_h32_->value(); }
	double h33() const { return doublespinbox_h33_->value(); }

private:
	QDoubleSpinBox* doublespinbox_h11_;
	QDoubleSpinBox* doublespinbox_h12_;
	QDoubleSpinBox* doublespinbox_h13_;
	QDoubleSpinBox* doublespinbox_h21_;
	QDoubleSpinBox* doublespinbox_h22_;
	QDoubleSpinBox* doublespinbox_h23_;
	QDoubleSpinBox* doublespinbox_h31_;
	QDoubleSpinBox* doublespinbox_h32_;
	QDoubleSpinBox* doublespinbox_h33_;

	void setupUI();
	void connectSlots();

signals:
	void SignalParameterChanged();
};
